package com.fate.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fate.system.dto.org.OrgAddDTO;
import com.fate.system.dto.org.OrgPageDTO;
import com.fate.system.dto.org.OrgUpdateDTO;
import com.fate.system.dto.org.OrgUserPageDTO;
import com.fate.system.entity.Org;
import com.fate.system.vo.org.OrgTreeVO;
import com.fate.system.vo.user.UserListVO;

import java.util.List;

/**
 * @author 47349
 * @description 针对表【sys_org(组织机构表)】的数据库操作Service
 * @createDate 2024-08-09 01:53:43
 */
public interface IOrgService extends IService<Org> {

  /**
   * 分页获取列表
   *
   * @param pageDTO
   * @return
   */
  Page<Org> getPageList(OrgPageDTO pageDTO);

  /**
   * 组织机构树形结构
   *
   * @return 组织机构树形结构
   */
  List<OrgTreeVO> treeList();

  /**
   * 删除组织机构
   *
   * @param id 组织机构id
   */
  void removeOrg(String id);

  /**
   * 新增机构
   *
   * @param orgAddDTO
   */
  void addOrg(OrgAddDTO orgAddDTO);

  /**
   * 更新组织机构
   *
   * @param updateDTO
   */
  void updateOrg(OrgUpdateDTO updateDTO);

  /**
   * 组织机构用户列表
   *
   * @param orgUserPageDTO
   * @return
   */
  Page<UserListVO> getOrgUserList(OrgUserPageDTO orgUserPageDTO);
}
